import { createStore } from 'vuex'
import createPersistedState from 'vuex-persistedstate'

export default createStore({
  state: {
    // 路由是否已经配置完成
    isGetterRouter: false,
    // menu 菜单是否折叠，默认为false，不折叠
    isCollapsed: false,
    // 登录成功存储用户信息
    userInfo: {}
  },
  getters: {},
  mutations: {
    // 路由
    changeGetterRouter(state, value) {
      state.isGetterRouter = value
    },
    // 控制侧边栏展开
    changeCollapsed(state) {
      state.isCollapsed = !state.isCollapsed
    },
    changeUserInfo(state, value) {
      state.userInfo = {
        ...state.userInfo,
        ...value
      }
    },
    cleanUserInfo(state, value) {
      state.userInfo = {}
    }
  },
  actions: {},
  modules: {},
  // 持久化插件（npm install --save vuex-persistedstate ），主要用于侧边栏折叠
  plugins: [
    createPersistedState({
      // paths控制是否持久化，在paths里面的是需要持久化的，如果这里不传参就会将路由持久化，那就没有路由拦截。
      paths: ['isCollapsed', 'userInfo']
    })
  ]
})
